package com.lw.nio.channel.fileChannel;

import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

/**
 * @author LW
 * @2021/9/12 18:26
 */
//FileChannel写操作
public class FileChannelDemo2 {
    /**
     * 文件中写内容
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        /**
         * 从buffer中写数据到FileChannel
         */
        //创建FileChannel
        RandomAccessFile aFile = new RandomAccessFile("C:\\Users\\ASUS\\Desktop\\a.txt", "rw");
        FileChannel channel = aFile.getChannel();


        //创建Buffer
        ByteBuffer buf = ByteBuffer.allocate(1024);

        String data = "这是一段内容";
        buf.clear();

        //写入内容
        buf.put(data.getBytes());
        buf.flip();

        //最终的实现
        while (buf.hasRemaining()) {//如果buffer里面有剩余的内容，在进行写操作（直到把里面内容都写出来）
            channel.write(buf);
        }

        //关闭
        channel.close();





    }
}
